package com.itheima.demo;

import java.util.Scanner;

// 电影操作类
public class MovieOperator {
  private Movie[] movies; // 记住一个电影对象的数组。

  public MovieOperator(Movie[] movies) {
    this.movies = movies;
  }

  // 打印全部电影信息
  public void printAllMovies() {
    System.out.println("================全部电影信息如下===============");
    for (int i = 0; i < movies.length; i++) {
      // i = 0 1 2 3 4 5
      Movie m = movies[i];
      System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t");
    }
  }

  // 根据id查询电影
  public void searchMovieById() {
    System.out.println("请输入要查询的电影id：");
    Scanner sc = new Scanner(System.in);
    int id = sc.nextInt();
    // 遍历每个电影对象
    for (int i = 0; i < movies.length; i++) {
      // 拿到当前遍历到的电影对象
      Movie m = movies[i];
      // 判断当前电影对象的id是否是我们正在找的电影id，是则打印出该电影信息并立即结束方法
      if (m.getId() == id) {
        System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t");
        return;
      }
    }
    System.out.println("没有找到该电影");
  }

  // 添加电影功能
  public void addMovie() {
    // 1、创建一个新的数组，长度是原数组+1
    Movie[] newMovies = new Movie[movies.length + 1];

    // 2、把原数组的电影数据拷贝到新数组中
    for (int i = 0; i < movies.length; i++) {
      newMovies[i] = movies[i];
    }

    // 3、录入新电影的信息
    Scanner sc = new Scanner(System.in, "UTF-8"); // 指定使用UTF-8编码

    try {
      System.out.println("请输入新电影的编号：");
      int id = sc.nextInt();
      sc.nextLine(); // 消费掉换行符

      System.out.println("请输入新电影的名称：");
      String name = sc.nextLine(); // 使用nextLine()来读取整行文本

      System.out.println("请输入新电影的评分：");
      double price = sc.nextDouble();
      sc.nextLine(); // 消费掉换行符

      System.out.println("请输入新电影的主演：");
      String actor = sc.nextLine(); // 使用nextLine()来读取整行文本

      // 4、创建一个电影对象，封装电影数据
      Movie movie = new Movie(id, name, price, actor);

      // 5、把新电影对象存入到新数组的最后一个位置
      newMovies[newMovies.length - 1] = movie;

      // 6、替换原数组
      movies = newMovies;

      System.out.println("恭喜您，成功添加了：" + name);

    } catch (Exception e) {
      System.out.println("输入格式有误，添加失败！");
      sc.nextLine(); // 清空输入缓冲区
    }
  }
}
